package GPStest;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import static java.lang.System.exit;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;


import java.util.regex.Pattern;
import javax.imageio.ImageIO;
import javax.swing.*;




public class GPStest {

    JFrame frame = new JFrame("Soccer Live Statistics");
    final static String Jornadas = "Melhores Marcadores";
    final static String Classificacao = "Classificação Actual";
    final static String Marcadores = "Jornadas";
    final static int extraWindowWidth = 400;
    final static int extraWindowleg = 400;
    ArrayList<Equipas> Equipas = new ArrayList();
    ArrayList<melhores_marcadores> Marcador=new ArrayList();
    ArrayList<jornada> jornadas =new ArrayList();
    
    final static JPanel card1 = new JPanel() {

            public Dimension getPreferredSize() {
                Dimension size = super.getPreferredSize();
                size.width += extraWindowWidth;
                size.height += extraWindowleg;
                return size;
            }
                    
        };
 
    
    
   /*
    
                                                JORNADAS
    */ 
    
    
//     private static final GridBagConstraints gbc;
//    static {
//        gbc = new GridBagConstraints();
//        gbc.gridx = 0;
//        gbc.gridy = 0;
//        gbc.weightx = 1.0;
//        gbc.weighty = 1.0;
//        gbc.fill = GridBagConstraints.BOTH;
//        gbc.anchor = GridBagConstraints.NORTHWEST;
//    }
//    
//    /**
//     * Wraps a Swing JComponent in a background image. Simply invokes the overloded
//     * variant with Top/Leading alignment for background image.
//     *
//     * @param component - to wrap in the a background image
//     * @param backgroundIcon - the background image (Icon)
//     * @return the wrapping JPanel
//     */
//    public static JPanel wrapInBackgroundImage(JComponent component,
//            Icon backgroundIcon) {
//        return wrapInBackgroundImage(
//                component,
//                backgroundIcon,
//                JLabel.TOP,
//                JLabel.LEADING);
//    }
//    
//    /**
//     * Wraps a Swing JComponent in a background image. The vertical and horizontal
//     * alignment of background image can be specified using the alignment
//     * contants from JLabel.
//     *
//     * @param component - to wrap in the a background image
//     * @param backgroundIcon - the background image (Icon)
//     * @param verticalAlignment - vertical alignment. See contants in JLabel.
//     * @param horizontalAlignment - horizontal alignment. See contants in JLabel.
//     * @return the wrapping JPanel
//     */
//    public static JPanel wrapInBackgroundImage(JComponent component,
//            Icon backgroundIcon,
//            int verticalAlignment,
//            int horizontalAlignment) {
//        
//        // make the passed in swing component transparent
//        component.setOpaque(false);
//        
//        // create wrapper JPanel
//        JPanel backgroundPanel = new JPanel(new GridBagLayout());
//        
//        // add the passed in swing component first to ensure that it is in front
//        backgroundPanel.add(component, gbc);
//        
//        // create a label to paint the background image
//        JLabel backgroundImage = new JLabel(backgroundIcon);
//        
//        // set minimum and preferred sizes so that the size of the image
//        // does not affect the layout size
//        backgroundImage.setPreferredSize(new Dimension(1,1));
//        backgroundImage.setMinimumSize(new Dimension(1,1));
//        
//        // align the image as specified.
//        backgroundImage.setVerticalAlignment(verticalAlignment);
//        backgroundImage.setHorizontalAlignment(horizontalAlignment);
//        
//        // add the background label
//        backgroundPanel.add(backgroundImage, gbc);
//        
//        // return the wrapper
//        return backgroundPanel;
//    }
    
  public static int jornada_obtem_jornada(int nr_jornada) throws FileNotFoundException
    {
         String link = "http://desporto.sapo.pt/futebol/primeira_liga/epoca-1415/resultados/";
         HttpRequest.httpRequestSite2(link,"","jornada.html");
          int sucesso = 1;
          
         if(nr_jornada == 0)
         {
             sucesso=1;
             return sucesso;
         }
//         String linha;
//         String er1="<a href=\"([0-9]*)\" alt=\"[0-9]*ª Jornada\">"+nr_jornada+"</a>";
//         Scanner ler = new Scanner(new FileInputStream("jornada.html"));
//        Pattern p1 = Pattern.compile(er1);
//        
//        String link2="";
//       
//      while(ler.hasNextLine())
//    {
//        linha=ler.nextLine();
//        Matcher procura = p1.matcher(linha);   
//        while(procura.find())
//        {
//            
//          link2 = "http://desporto.sapo.pt/futebol/primeira_liga/epoca-1415/resultados/"+procura.group(1);
//          System.out.println(procura.group(1));
//        }
//    }
//
//      ler.close();
//
//      if(link2!= "")
//      {
//        HttpRequest.httpRequestSite2(link2,"","jornada.html");
//        sucesso=1;
//      }
//      else
//      {
//          System.out.println("Erro ao definir o link\n");
//          sucesso=0;
//      }
     
         if(nr_jornada < 0|| nr_jornada > 34)
         {
             sucesso = 0;
              return sucesso;
                 
         }
  
         nr_jornada = nr_jornada +15839;
     HttpRequest.httpRequestSite2("http://desporto.sapo.pt/futebol/primeira_liga/epoca-1415/resultados/"+nr_jornada,"","jornada.html");
     
     return sucesso;
      
    }
       public static ArrayList<jornada> jornada_obtem_data(ArrayList<jornada> jornadas) throws FileNotFoundException
    {

        String linha;
        String er1="<i class=\"icon-calendar\"></i><time itemprop=\"startDate\" datetime=\"[0-9]*-[0-9]*-[0-9]*T[0-9]*:[0-9]*:[0-9]*\"> ([a-zA-Z0-9 ]*) | [0-9]*:[0-9]*</time>";   
        Scanner ler = new Scanner(new FileInputStream("jornada.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
        
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
            if (procura.group(1) == null)
                    continue;
                    
           jornada a=new jornada();      
           
           a.setData(procura.group(1));
           jornadas.add(a);
           
        }
    }

      ler.close();

      return jornadas;
   }
        public static ArrayList<jornada> jornada_obtem_hora(ArrayList<jornada> jornadas) throws FileNotFoundException
    {

        String linha;
        String er1="<i class=\"icon-calendar\"></i><time itemprop=\"startDate\" datetime=\"[0-9]*-[0-9]*-[0-9]*T[0-9]*:[0-9]*:[0-9]*\"> [a-zA-Z0-9 ]* | ([0-9]*:[0-9]*)</time>";   
        Scanner ler = new Scanner(new FileInputStream("jornada.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
        
        int i=0;
        
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
            if (procura.group(1) == null)
                    continue;
            else
            {

           jornadas.get(i).setHora(procura.group(1));
           i++;
            }
 
        }
    }

      ler.close();

      return jornadas;
   }
   public static ArrayList<jornada> jornada_obtem_equipas(ArrayList<jornada> jornadas) throws FileNotFoundException
    {

        String linha;
        String er1="<h3 itemprop=\"name\">([a-zA-Z0-9ãõéáí.ú ]*)</h3>";   
        Scanner ler = new Scanner(new FileInputStream("jornada.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
        
        int i=0;
        int j=0;
        
      while(ler.hasNextLine())
    {
       
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        
        while(procura.find())
        {
            
            if (i==0)
            {
                jornadas.get(j).setCasa(procura.group(1));
                i++;
              
            }
           else
            {
                jornadas.get(j).setFora(procura.group(1));
                i--;
                j++;
               
            }
            
            
         
        }
    }

      ler.close();

      return jornadas;
   }
  
   
   public static ArrayList<jornada> jornada_obtem_canal(ArrayList<jornada> jornadas) throws FileNotFoundException
    {

        String linha;
        String er1="<td class=\"[^>]{0,2}\"";   
   
        Scanner ler = new Scanner(new FileInputStream("jornada.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
        
        int i=0;
        int j=0;
        String aux;
        int vetor[];
        int z=0;
        vetor=new int[10];
        for(z=0;z<10;z++){
        vetor[z]=0;
                }
        z=0;
     
       
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
           aux=procura.group();
                 //jornadas.get(i).setCanal(procura.group(1));
               
                 if(aux.equals("<td class=\"tv\"")){
                    // System.out.println("igual");
                     vetor[z]=1;
                     
                 }
                 
                 //else{
                  ///   vetor[z]=0;
                      
                // }
                 
                 
                 
                 //System.out.println(procura.group());
                 i++;
             z++;
        }
    }

      ler.close();

     
      
      
       er1="<span>([a-zA-Z0-9. ]{1,12})</span>";   

       ler = new Scanner(new FileInputStream("jornada.html"),"UTF-8");
        p1 = Pattern.compile(er1);
      String aux2;
     
     z=0; 
     i=0;
       while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {

            if (procura.group(1).equals("Bola Branca"))
            {
                
               //jornadas.get(z).setCanal("Nenhum");
                //z++;
             i++;   
                continue;
                
            }
         
           while(vetor[z]!=1){
              
             z++;
           }
           jornadas.get(z).setCanal(procura.group(1));
           z++;
         i++;
        }
    }
        
      
      
      
      
      return jornadas;
   }
   
   
   public static ArrayList<jornada> jornada_obtem_resultado(ArrayList<jornada> jornadas) throws FileNotFoundException
    {
        String linha;
        String er1="<span class=\"score\">([0-9]*)</span>"; 
        
        Scanner ler = new Scanner(new FileInputStream("jornada.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
        
        int i=0;
        int j=0;
        String aux = "";
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
            if (i==0)
            {
                aux = procura.group(1);
                i++;
            }
            else
            {
                jornadas.get(j).setResultado(aux + " - " + procura.group(1));
                i--;
                j++;  
            }
            
        }
    }

      ler.close();

      return jornadas;
   }
   
  
   
   /*
    
                                                mARCADORES
    */ 
   
   
   
    public static ArrayList<melhores_marcadores> marcador_obtem_nome(ArrayList<melhores_marcadores> Marcadores) throws FileNotFoundException
    {
        String link = "http://desporto.sapo.pt/futebol/primeira_liga/epoca-1415/goleadores/";
        HttpRequest.httpRequestSite2(link,"","marcadores.html");
        
        String linha;
        String er1="(<span>)([^<]{3,20})";   
        Scanner ler = new Scanner(new FileInputStream("marcadores.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
        int aux=0;
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
           melhores_marcadores a=new melhores_marcadores();      
           if (aux>0 && aux<=10){
           a.setNome(procura.group(2));
           Marcadores.add(a);
           }
           aux++;
        }
    }

      ler.close();



      return Marcadores;
   }
    public static ArrayList<melhores_marcadores> marcador_obtem_golos(ArrayList<melhores_marcadores> Marcadores) throws FileNotFoundException
    {

        String linha;
        String er1="<td data-title=\"Golos Marcados\" data-sort-key=\"([0-9]{3,4})\">([^<]*)";   
        Scanner ler = new Scanner(new FileInputStream("marcadores.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
        
int i=0;
String frase;
int tam;
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
  
   // System.out.println();
    Marcadores.get(i).setGolosm(Integer.parseInt(procura.group(2)));
    i++;
        }
    }

      ler.close();



      return Marcadores;
   }
    public static ArrayList<melhores_marcadores> marcador_obtem_posicao(ArrayList<melhores_marcadores> Marcadores) throws FileNotFoundException
    {          
        String linha;
        String er1="<td data-title=\"Posição\" data-sort-key=\"[0-9]{3}\">([^<]*)";   
        Scanner ler = new Scanner(new FileInputStream("marcadores.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
        int i=0;
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
        Marcadores.get(i).setPosicao(procura.group(1));
        //System.out.println(procura.group(1));
        i++;

        }
    }

      ler.close();



      return Marcadores;
   }
    public static ArrayList<melhores_marcadores> marcador_obtem_jogos(ArrayList<melhores_marcadores> Marcadores) throws FileNotFoundException
    {

        String linha;
        String er1="(<td data-title=\"Jogos\" data-sort-key=\"[0-9]{3,4}\">)([0-9]*)";   
        Scanner ler = new Scanner(new FileInputStream("marcadores.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
int i=0;
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
        Marcadores.get(i).setJogos(Integer.parseInt(procura.group(2)));
         //System.out.println(procura.group(2));
            
            i++;
        }
    }

      ler.close();



      return Marcadores;
   }
    public static ArrayList<melhores_marcadores> marcador_obtem_media(ArrayList<melhores_marcadores> Marcadores) throws FileNotFoundException
    {
          
        String linha;
        String er1="<td data-title=\"Média\" data-sort-key=";   
        Scanner ler = new Scanner(new FileInputStream("marcadores.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
int i=0;
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
        //Marcadores.get(i).setJogos(Integer.parseInt(procura.group(2)));
      //   System.out.println(procura.group());
            
            i++;
        }
    }
 
      ler.close();
      
      
      
      return Marcadores;
   }
    public static ArrayList<melhores_marcadores> marcador_obtem_clube(ArrayList<melhores_marcadores> Marcadores) throws FileNotFoundException
    {
          
        String linha;
        String er1="<small>.([aA-zZ]*[ ]?.?[ ]?[aA-zZ]*[ãêõ]*[aA-zZ]*)";   
        Scanner ler = new Scanner(new FileInputStream("marcadores.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
int i=0;
String aux;
            int teste;
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
     teste=procura.group(1).indexOf(")");
           
     if (teste!=-1){
         aux=procura.group(1).substring(0, procura.group(1).length()-1);
         Marcadores.get(i).setClube(aux);
         
     }
     else{
        Marcadores.get(i).setClube(procura.group(1));
         //System.out.println(procura.group());
     }
            i++;
        }
    }
 
      ler.close();
      
      
      
      return Marcadores;
   }
    
    
    
    
    /*
    
                                                CLASSIFICACAO
    */ 
    
    
    
    
      public static ArrayList<Equipas> classificacao_obtem_lugar(ArrayList<Equipas> Equipas) throws FileNotFoundException
    {

        String link = "http://desporto.sapo.pt/futebol/primeira_liga/epoca-1415/classificacao/";
        HttpRequest.httpRequestSite2(link,"","classificacao.html");
        String linha;
        String er1="<span class=\"nr \">([0-9]*)</span>";   
        Scanner ler = new Scanner(new FileInputStream("classificacao.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);

      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
           Equipas e= new Equipas();                 
           e.setPosicao(Integer.parseInt(procura.group(1)));
           Equipas.add(e);
        }
    }

      ler.close();

      return Equipas;
   }
   public static ArrayList<Equipas> classificacao_obtem_nome(ArrayList<Equipas> Equipas) throws FileNotFoundException
    {

        String linha;
        String er1="data-tip-text=\"([^0-9]*)";   
        Scanner ler = new Scanner(new FileInputStream("classificacao.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
int i=0;
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
           Equipas.get(i).setNome(procura.group(1));
           i++;
        }
    }

      ler.close();



      return Equipas;
   }
   public static ArrayList<Equipas> classificacao_obtem_info(ArrayList<Equipas> Equipas) throws FileNotFoundException
    {        String linha;
        String er1="(<td>)([-]?[0-9]*)(</td>)";
        Scanner ler = new Scanner(new FileInputStream("classificacao.html"),"UTF-8");
        Pattern p1 = Pattern.compile(er1);
        int i=0;
        int x=0;
      while(ler.hasNextLine())
    {
        linha=ler.nextLine();
        Matcher procura = p1.matcher(linha);   
        while(procura.find())
        {
            if (x==7){
            Equipas.get(i).setDG(Integer.parseInt(procura.group(2)));
            x=-1;
            i++;
            }
            if(x==1){

                 Equipas.get(i).setJogos(Integer.parseInt(procura.group(2)));
            }
            if(x==0){
                Equipas.get(i).setPontos(Integer.parseInt(procura.group(2)));
            }
            if(x==2){
            Equipas.get(i).setV(Integer.parseInt(procura.group(2)));
            }
            if(x==3){
            Equipas.get(i).setE(Integer.parseInt(procura.group(2)));
            }
            if (x==4){
            Equipas.get(i).setD(Integer.parseInt(procura.group(2)));
            }
            if (x==5){
                Equipas.get(i).setGM(Integer.parseInt(procura.group(2)));
            }

            if (x==6){
                Equipas.get(i).setGS(Integer.parseInt(procura.group(2)));
            }
            x++;
        }
    }
      ler.close();
      return Equipas;
   }

   
   
   
   /*
    
                                                COMPONENTES
    */ 
   

    public void addComponentToPane(Container pane) throws FileNotFoundException, IOException {
        JTabbedPane tabbedPane = new JTabbedPane();


    
        ///////////////////////////////////////////////////////////////////////CLASSIFICACAO
        final ImageIcon imageIcon = new ImageIcon("Imagem.gif");
        final JTextArea resultado = new javax.swing.JTextArea();

        
         resultado.setEditable(false);
         
        JButton botao_cla =new JButton("Atualiza Classificação");
        card1.add(botao_cla);
         
         botao_cla.addActionListener(new java.awt.event.ActionListener() {
            @Override
            public void actionPerformed(java.awt.event.ActionEvent evt) 
            {
                try {
                    botao_claActionPerformed(evt,resultado);
                } catch (FileNotFoundException ex) {
                    Logger.getLogger(GPStest.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
         
        Equipas = classificacao_obtem_lugar(Equipas);
        Equipas = classificacao_obtem_nome(Equipas);
        Equipas =classificacao_obtem_info(Equipas);
        String aux = "#\tEquipa\tPontos\tJogos\tVitórias\tEmpates\tDerrotas\tGM\tGS\tDG\n\n";

      for(int i=0; i< Equipas.size();i++)
        {
            aux = aux + Equipas.get(i).getPosicao()+ "\t";
            aux=aux+Equipas.get(i).getNome()+"\t";
            aux=aux+Equipas.get(i).getPontos()+"\t";
            aux=aux+Equipas.get(i).getJogos()+"\t";
            aux=aux+Equipas.get(i).getV()+"\t";
            aux=aux+Equipas.get(i).getE()+"\t";
            aux=aux+Equipas.get(i).getD()+"\t";
            aux=aux+Equipas.get(i).getGM()+"\t";
            aux=aux+Equipas.get(i).getGS()+"\t";
            aux=aux+Equipas.get(i).getDG()+"\n";


        }

      resultado.setText(aux);

        card1.add(resultado);
             

                
    /////////////////////////////////////////////////////////////////////// MARCADORES

        JPanel card2 = new JPanel();
        final  JTextArea resultado2 = new javax.swing.JTextArea();
         JButton botao_marcadores = new JButton("Atualizar Melhores Marcadores");
      resultado2.setEditable(false);
      card2.add(resultado2);
      card2.add(botao_marcadores);
      
      botao_marcadores.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) 
            {
                try {
                    botao_marcadoresActionPerformed(evt,resultado2);
                } catch (FileNotFoundException ex) {
                    Logger.getLogger(GPStest.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });

      Marcador=marcador_obtem_nome(Marcador);
      Marcador=marcador_obtem_golos(Marcador);
      Marcador=marcador_obtem_jogos(Marcador);
    //  Marcador=marcador_obtem_media(Marcador);
      Marcador=marcador_obtem_clube(Marcador);
      Marcador=marcador_obtem_posicao(Marcador);
      String aux2="#\tNome\tSobrenome\tGolos\tJogos\tMédia\tEquipa\tPosição\t\n\n";
  String aux_aux=null;
double media;
String teste1=null;
String teste2=null;
  String aux_aux2=null;
  int teste;
         for(int i=0; i< Marcador.size();i++)
        {
            aux2=aux2+(i+1)+"\t";
         
            teste=Marcador.get(i).getNome().indexOf(" ");
            if (teste==-1){
        
             aux2=aux2+Marcador.get(i).getNome()+"\t";
            aux2=aux2+"\t";
            aux2=aux2+"\t";
            }
            else{
           
            
                aux_aux=Marcador.get(i).getNome().substring(0,teste);
            aux_aux2=Marcador.get(i).getNome().substring(teste+1,Marcador.get(i).getNome().length());
            aux2=aux2+aux_aux;
            aux2=aux2+"\t";
            aux2=aux2+aux_aux2;
            aux2=aux2+"\t";
            
            
            }
                aux2=aux2+Marcador.get(i).getGolosm()+"\t";
            aux2=aux2+Marcador.get(i).getJogos()+"\t";
           media=(double)Marcador.get(i).getGolosm()/(double)Marcador.get(i).getJogos();
         teste1="";
         teste2="";
           teste1=teste1+media;
          
          // System.out.println(media);
          teste2=teste2+teste1.substring(0, 3);
           aux2=aux2+teste2+"\t";
            //aux2=aux2+media+"\t";
            aux2=aux2+Marcador.get(i).getClube()+"\t";
            aux2=aux2+Marcador.get(i).getPosicao()+"\n";
    
         
        }
      resultado2.setText(aux2);

      
     


       /////////////////////////////////////////////////////////////////////// JORNADA
      
        int valor ;
        JPanel card3 = new JPanel();
        JButton botao_jornada = new JButton("Actualizar");
        final JSpinner spi_jornada = new javax.swing.JSpinner();
     
        //spi_jornada.setValue(1);
     
       // BufferedImage myPicture = ImageIO.read(new File("soccer_ball.jpg"));
//JLabel picLabel = new JLabel(new ImageIcon(myPicture));

     
//ex.add(botao_jornada);
        //ex.add(botao_jornada);
  //      ex.add(spi_jornada);
        card3.add(botao_jornada);
        card3.add(spi_jornada);
      
        final JTextArea resultado3 = new javax.swing.JTextArea();
      //resultado3.
       
        resultado3.setEditable(false);
        
        
       
       
        botao_jornada.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) 
            {
                
                try {
                   
                    botao_jornadaActionPerformed(evt,spi_jornada,resultado3,(int) spi_jornada.getValue());
                } catch (FileNotFoundException ex) {
                    Logger.getLogger(GPStest.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        
     
        int nr_jornada = 0;
        int sucesso;
        
        sucesso = jornada_obtem_jornada(nr_jornada);
        
        if (sucesso == 0)
        {
               System.out.println("Erro ao defenir o link\n");
               return;
        }
        jornadas = jornada_obtem_data(jornadas);
        jornadas = jornada_obtem_hora(jornadas);
        jornadas = jornada_obtem_equipas(jornadas);
        jornadas = jornada_obtem_canal(jornadas);
        jornadas = jornada_obtem_resultado(jornadas);
        
        
         
        String aux3="Data\tHora\tCasa\tResultado\tFora\tCanal\n\n";
         for(int i=0; i< jornadas.size();i++)
        {
            aux3=aux3+jornadas.get(i).getData()+"\t"; 
            aux3=aux3+jornadas.get(i).getHora()+"\t";  
            aux3=aux3+jornadas.get(i).getCasa()+"\t";
            if (jornadas.get(i).getResultado() == null)
                jornadas.get(i).setResultado(" -    - ");
            aux3=aux3+jornadas.get(i).getResultado()+"\t";
            aux3=aux3+jornadas.get(i).getFora()+"\t" ;
            if(jornadas.get(i).getCanal() == null)
                jornadas.get(i).setCanal(" ");
            aux3=aux3+jornadas.get(i).getCanal()+"\n";
        }
      resultado3.setText(aux3);
    
        card3.add(resultado3);
//picLabel.add(resultado3);
        
//
       // ex.add(resultado3);
    //    card3.add(ex);
        
        tabbedPane.addTab(Classificacao, card1);
        tabbedPane.addTab(Jornadas, card2);
        tabbedPane.addTab(Marcadores, card3);

        pane.add(tabbedPane, BorderLayout.CENTER);
    }
 
    
    
    
    ///////////////////////////////////////  Activa Botoes
    
    private void botao_claActionPerformed(java.awt.event.ActionEvent evt, JTextArea resultado) throws FileNotFoundException { 
       
        resultado.setText("");
        Equipas.clear();
        
        Equipas = classificacao_obtem_lugar(Equipas);
        Equipas = classificacao_obtem_nome(Equipas);
        Equipas =classificacao_obtem_info(Equipas);
        String aux = "#\tEquipa\tPontos\tJogos\tVitórias\tEmpates\tDerrotas\tGM\tGS\tDG\n\n";

      for(int i=0; i< Equipas.size();i++)
        {
            aux = aux + Equipas.get(i).getPosicao()+ "\t";
            aux=aux+Equipas.get(i).getNome()+"\t";
            aux=aux+Equipas.get(i).getPontos()+"\t";
            aux=aux+Equipas.get(i).getJogos()+"\t";
            aux=aux+Equipas.get(i).getV()+"\t";
            aux=aux+Equipas.get(i).getE()+"\t";
            aux=aux+Equipas.get(i).getD()+"\t";
            aux=aux+Equipas.get(i).getGM()+"\t";
            aux=aux+Equipas.get(i).getGS()+"\t";
            aux=aux+Equipas.get(i).getDG()+"\n";


        }

      resultado.setText(aux);
        
       
   }
    private void botao_marcadoresActionPerformed(java.awt.event.ActionEvent evt, JTextArea resultado2) throws FileNotFoundException { 
       
         resultado2.setText("");
        Marcador.clear();
        
        Marcador=marcador_obtem_nome(Marcador);
      Marcador=marcador_obtem_golos(Marcador);
      Marcador=marcador_obtem_jogos(Marcador);
    //  Marcador=marcador_obtem_media(Marcador);
      Marcador=marcador_obtem_clube(Marcador);
      Marcador=marcador_obtem_posicao(Marcador);
      String aux2="#\tNome\tSobrenome\tGolos\tJogos\tMédia\tEquipa\tPosição\t\n\n";
  String aux_aux=null;
double media;
String teste1=null;
String teste2=null;
  String aux_aux2=null;
  int teste;
         for(int i=0; i< Marcador.size();i++)
        {
            aux2=aux2+(i+1)+"\t";
         
            teste=Marcador.get(i).getNome().indexOf(" ");
            if (teste==-1){
        
             aux2=aux2+Marcador.get(i).getNome()+"\t";
            aux2=aux2+"\t";
            aux2=aux2+"\t";
            }
            else{
           
            
                aux_aux=Marcador.get(i).getNome().substring(0,teste);
            aux_aux2=Marcador.get(i).getNome().substring(teste+1,Marcador.get(i).getNome().length());
            aux2=aux2+aux_aux;
            aux2=aux2+"\t";
            aux2=aux2+aux_aux2;
            aux2=aux2+"\t";
            
            
            }
                aux2=aux2+Marcador.get(i).getGolosm()+"\t";
            aux2=aux2+Marcador.get(i).getJogos()+"\t";
           media=(double)Marcador.get(i).getGolosm()/(double)Marcador.get(i).getJogos();
         teste1="";
         teste2="";
           teste1=teste1+media;
          
          // System.out.println(media);
          teste2=teste2+teste1.substring(0, 3);
           aux2=aux2+teste2+"\t";
            //aux2=aux2+media+"\t";
            aux2=aux2+Marcador.get(i).getClube()+"\t";
            aux2=aux2+Marcador.get(i).getPosicao()+"\n";
    
         
        }
      resultado2.setText(aux2);
       
   }
    
    private void botao_jornadaActionPerformed(java.awt.event.ActionEvent evt, JSpinner spi_jornada, JTextArea resultado3, int valor) throws FileNotFoundException { 
       
       
      
        System.out.println(valor);
        
        resultado3.setText("");
        jornadas.clear();
        
        int sucesso;
        
        sucesso = jornada_obtem_jornada(valor); //actualiza ficheiro
        
        if (sucesso == 0)
        {
               System.out.println("Erro ao definir o link\n");
               
               JOptionPane.showMessageDialog(frame, "Introduza uma jornada de 1 a 34!", "Jornada incorrecta!",JOptionPane.INFORMATION_MESSAGE);
               return;
        }
        
        jornadas = jornada_obtem_data(jornadas);
        jornadas = jornada_obtem_hora(jornadas);
        jornadas = jornada_obtem_equipas(jornadas);
        jornadas = jornada_obtem_canal(jornadas);
        jornadas = jornada_obtem_resultado(jornadas);
        
        
        
        String aux3="Data\tHora\tCasa\tResultado\tFora\tCanal\n\n";
         for(int i=0; i< jornadas.size();i++)
        {
            aux3=aux3+jornadas.get(i).getData()+"\t"; 
            aux3=aux3+jornadas.get(i).getHora()+"\t";  
            aux3=aux3+jornadas.get(i).getCasa()+"\t";
            if (jornadas.get(i).getResultado() == null)
                jornadas.get(i).setResultado(" -    - ");
            aux3=aux3+jornadas.get(i).getResultado()+"\t";
            aux3=aux3+jornadas.get(i).getFora()+"\t" ;
            if(jornadas.get(i).getCanal() == null)
                jornadas.get(i).setCanal(" ");
            aux3=aux3+jornadas.get(i).getCanal()+"\n";
        }
      resultado3.setText(aux3);
   }

    private static void createAndShowGUI() throws FileNotFoundException, IOException {

        final JFrame frame = new JFrame("Soccer Live Statistics"){
        
        //private Image backgroundImage = ImageIO.read(new File("Imagem.jpg"));
       // public void paint( Graphics g ) { 
       // super.paint(g);
       // g.drawImage(backgroundImage, 0, 0, null);
       // }
        
        };
        
//        frame.setLayout(new GridBagLayout());
//        
//        frame.setContentPane(wrapInBackgroundImage(card1,
//                new ImageIcon(
//                GPStest.class.getResource("Imagem.jpg"))));
        
       
        
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        

        GPStest demo = new GPStest();
        demo.addComponentToPane(frame.getContentPane());
        
         

        frame.pack();
        frame.setVisible(true);
        
      
      
        boolean i;
        i = isInternetReachable();
        
        if (i == false)
        {
            JOptionPane.showMessageDialog(frame, "Não é possivel estabelecer ligação a Internet, tente mais tarde.", "Erro de Ligação!",JOptionPane.ERROR_MESSAGE);
            exit(0);
        }
        

    }
    
    public static boolean isInternetReachable()
        {
            try {
                //make a URL to a known source
                URL url = new URL("http://desporto.sapo.pt");

                //open a connection to that source
                HttpURLConnection urlConnect = (HttpURLConnection)url.openConnection();

                //trying to retrieve data from the source. If there
                //is no connection, this line will fail
                Object objData = urlConnect.getContent();

            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return false;
            }
            catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return false;
            }
            return true;
        }


    public static void main(String[] args) throws FileNotFoundException, MalformedURLException, IOException {
        
   
        try {
            UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
        } catch (UnsupportedLookAndFeelException ex) {
            ex.printStackTrace();
        } catch (IllegalAccessException ex) {
            ex.printStackTrace();
        } catch (InstantiationException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }

        UIManager.put("swing.boldMetal", Boolean.FALSE);

        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                try {
                    createAndShowGUI();
                } catch (IOException ex) {
                    Logger.getLogger(GPStest.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
    }
}